/**
 * vue插件
 * 语法:{install(Vue){}}
 * 使用:需要去入口main.js中注册=>Vue.use(我的插件对象)
 */

// moment 插件 dayjs 插件 都是处理时间格式
import dayjs from 'dayjs'
// 使用dayjs插件(按需)
import relativeTime from 'dayjs/plugin/relativeTime'
// 国际化
import 'dayjs/locale/zh-cn'
dayjs.locale('zh-cn')
// 添加插件
dayjs.extend(relativeTime)
// 相对时间换算

/**
 *
 * @param {*} value 获取模板中值: val|filter
 * @returns
 */
const relTime = (value) => {
  // console.log(dayjs());
  return dayjs().from(value)
}

// 睡眠函数
const $sleep = (time) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve()
    }, time || 3000)
  })
}

export default {
  // 在注册的时间框架调用install方法,传入Vue
  /**
   * Vue构造函数
   */
  install (Vue) {
    // console.log('vue构造函数:',Vue)
    // 使用场景:注册全局过滤器,组件,指令或挂载全局公共方法(所有页面都可以访问
    // 挂载全局方法
    Vue.prototype.$sleep = $sleep
    // 全局格式化相对时间过滤器
    Vue.filter('relTime', relTime)
  }
}
